// 编写路由
const express = require('express');
const router = express.Router();
// 导入用户业务逻辑模块
const adminController = require('../../controllers/adminController');
const Email = require('../../common/emailApi');

// 1. 注册
router.post('/register', async (req,res)=>{
    // 接收前端提交邮箱和验证码（辨别用户真假）
    let code = req.body.code;
    let admin_acc= req.body.admin_acc;
    // console.log({code, admin_acc});
    await Email.verifyEmailCode(admin_acc,code)
    .then(
        content=>{
            if(content.code == 200){
                // 注册账号
                adminController.register(req,res)
            }
            else {
                res.send({code: -1, msg: '请填写正确的验证码。'})
            }
        }
    )
    .catch(
        err=> {
            res.send(err)
        }
    )
    
})

// 2. 登录
router.post('/login', async (req,res)=>{
    // 用户登录
    await adminController.login(req,res);
})

// 3. 注销
router.post('/remove', async (req,res,next)=>{
    // 用户登录
    await adminController.remove(req,res,next);
})

// 4. 获取用户头像
router.get('/get_picUrl',async (req,res)=>{
    await adminController.getPicUrl(req,res);
})

// 5. 设置用户头像
router.post('/set_picUrl', async (req,res)=>{
    await adminController.setPicUrl(req,res);
})

// 6. 找回密码
router.post('/find_pwd',async (req,res)=>{
      // 接收前端提交邮箱和验证码（辨别用户真假）
      let code = req.body.code;
      let admin_acc= req.body.admin_acc;
      // 校验邮件的验证码
      await Email.verifyEmailCode(admin_acc,code)
      .then(
          async content=>{
              if(content.code == 200){
                  // 找回密码
                 await adminController.findPwd(req,res);
              }
              else {
                  res.send({code: -1, msg: '请填写正确的验证码。'});
              }
          }
      )
      .catch(
          err=> {
              res.send(err)
          }
      )
})

// 7. 用户列表
router.get('/userlist',async (req,res)=>{
    await adminController.userList(req,res);
})

// 8. 删除用户
router.post('/delete',async (req,res)=>{
    await adminController.deleteUser(req,res);
})

// 9.0 统计用户数量
router.get('/count', async (req,res)=>{
    await adminController.count(req,res);
})

// 把用户路由挂载到模块系统
module.exports = router;